//
//  ZYNetworking.h
//  ZYNetworking
//
//  Created by 张一奇 on 16/12/5.
//  Copyright © 2016年 zhangYiQi. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <AFNetworking.h>
#import "ZYAFNModel.h"

typedef NS_ENUM(NSUInteger, ZYNetworkStatus) {
    /** 未知网络*/
    ZYNetworkStatusUnknown,
    /** 无网络*/
    ZYNetworkStatusNotReachable,
    /** 手机网络*/
    ZYNetworkStatusReachableViaWWAN,
    /** WIFI网络*/
    ZYNetworkStatusReachableViaWiFi
};

typedef NS_ENUM(NSUInteger, ZYHttpMethod) {
    /**Get请求*/
    ZYHttpMethodGet,
    /**Post请求*/
    ZYHttpMethodPost,
};
/** 网络状态的Block*/
typedef void(^ZYFNetworkStatus)(ZYNetworkStatus status);


// 第一步 : 继承自 AFHTTPSessionManager
@interface ZYNetworking : AFHTTPSessionManager


/**
 有网YES, 无网:NO
 */
+ (BOOL)isNetwork;

/**
 手机网络:YES, 反之:NO
 */
+ (BOOL)isWWANNetwork;

/**
 WiFi网络:YES, 反之:NO
 */
+ (BOOL)isWiFiNetwork;




/**
 *  网络请求工具类全局访问点
 *
 *  @return AFHTTPSessionManager的实例
 */
+ (instancetype)sharedNetworkTool;

/**
 请求网络的方法(已包含BaseURL)
 
 @param method     请求方式
 @param urlString  请求地址
 @param parameters 请求参数
 @param completion 请求完成的回调
 */

- (void)request:(ZYHttpMethod)method componentUrlString:(NSString *)urlString parameters:(id)parameters completion:(void(^)(id response, NSError *error))completion ;

// 取消所有正在下载线程
- (void)cancelOperations;

@end

